/*
 */

#ifndef __QUICK_START_SURFACE_SHADER3D__
#define __QUICK_START_SURFACE_SHADER3D__

#include <OGF/quick_start/common/common.h>
#include <OGF/surface/shaders/plain_surface_shader3d.h>

#include <vector>

namespace OGF {

//____________________________________________________________________

    gom_class QUICK_START_API DeformSurfaceShader3d : public PlainSurfaceShader3d {
    public:
        DeformSurfaceShader3d(Surface* grob) ;

    protected:
        virtual void draw(RenderingContext* out);
		
		void draw_anchor(RenderingContext* context);
		void draw_border(RenderingContext* context);
		void draw_roi(RenderingContext* context);
        virtual void draw_vertices(RenderingContext* out) ;

//		virtual void draw_top_edges(RenderingContext* context);
	
    private:
		std::vector< Map::Halfedge* > get_top_ten();

		Color color[10]; //colors for the top 10 (0 is top, 9 is last)

    } ;

//____________________________________________________________________

}

#endif
